package net.zjitc.test;

/**
 *  一只兔子躲进了10个环形分布的洞中的一个。狼在第一个洞中没有找到兔子，就隔一个洞，到第三个洞去找；
 *  也没有找到，就隔两个洞，到第六个洞去找；以后每次多一个洞去找兔子……
 *  这样下去，如果一直找不到兔子，请问兔子可能在哪个洞中？
 */
public class ArrayRabbit {
    public static void main(String[] args) {
        /* 1、定义一个数组，表示10个洞，默认值0, 0表示没有被找过的洞
        *  2、找规律，若某个洞被找过，就把值置为1
        *     第一次：1
              第二次：3   1+2
              第三次：6   1+2+3
              第n次:  x   x是1+2+3+……+n除以10的余数
        *     arr[1]-arr[9]表示第1个到第9个洞
        *     arr[0]表示第10个洞
        *  3、最后，遍历数组，若值为0，就表示兔子可能藏在里面*/
        int[] arr=new int[10];
        // 定义n表示第几个洞，m表示取模后的第几个洞
        int n=0,m=0;
        // 假设找了1000次,表示找了足够多次了
        // i得从0开始，一开始把第一个洞给排除掉
        for (int i = 0; i <1000 ; i++) {
           // 根据规律得到的表达式
           n=n+i+1;
           m=n%10;
           arr[m]=1;
        }
        System.out.println("兔子可能藏在：");
        for (int i = 0; i <arr.length ; i++) {
            if(arr[i]==0){
                System.out.println(i);
            }
        }
    }
}
